//从这里进行管道文件的创建
#include<iostream>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/types.h>
#include <unistd.h>
#include <sys/types.h>
#include <unistd.h>

int main()
{
    //创造一个管道文件
    int n = mkfifo("./fifo",0666); //在当前文件创造一个（命名）管道文件
    if(n < 0)
    {
        std :: cout << "mkfifo failed" << std :: endl;
    }
    else
    {
        std :: cout << "mkfifo success" << std :: endl;
    }
    //管道文件创建成功
    //这个文件负责往管道文件写
    int fd = open("fifo",O_WRONLY);
    if(fd < 0)
    {
        std :: cout << "写入失败" << std :: endl;
    }
    //执行写入操作
    std :: string message;
    int cnt = 1;
    pid_t id = getpid();
    while (true)
    {
        std :: cout << "Please Enter#";
        std :: getline(std :: cin,message);
        message += (", message number: " + std::to_string(cnt++) + ", [" + std::to_string(id) + "]");
        write(fd,message.c_str(),sizeof(message));  // 此时已经把内容写到管道文件了
    }
    close(fd);
    return 0;
}